package org.mcb.zebra.portal.manager;

import javax.portlet.PortalContext;
import javax.servlet.http.HttpServletRequest;

import org.apache.pluto.PortletContainer;
import org.apache.pluto.PortletWindow;
import org.apache.pluto.spi.PortalCallbackService;
import org.apache.pluto.spi.PortletURLProvider;
import org.apache.pluto.spi.ResourceURLProvider;
import org.mcb.zebra.portal.page.PageManager;
import org.mcb.zebra.portal.resource.ResourceConfig;
import org.mcb.zebra.portal.url.UrlParser;

public interface PortalManager {

	public static final String PORTLET_CONTAINER = PortletContainer.class
			.getName();
	public static final String PORTAL_MANAGER = PortalManager.class.getName();
	public static final String LIST_PORTLETS = PortalManager.class.getName()+"_LIST_PORTLETS";
	public static final String INIT_PARAM_HANDLE = "INIT_PARAM_HANDLE";

	public abstract PortalCallbackService getCallbackService();

	public abstract void setCallbackService(
			PortalCallbackService callbackService);

	public abstract PortalContext getPortalContext();

	public abstract void setPortalContext(PortalContext portalContext);

	public abstract ResourceConfig getConfig();

	public abstract void setConfig(ResourceConfig config);

	public abstract PortletURLProvider getPortletURLProvider(
			HttpServletRequest request, PortletWindow portletWindow);

	public abstract ResourceURLProvider getResourceURLProvider(
			HttpServletRequest request, PortletWindow portletWindow);

	public abstract PageManager getPageManager();
	
	public abstract PortletWindow getPortletWindow(String context,String portletName);

	public abstract UrlParser getUrlParser();

	public abstract void setUrlParser(UrlParser urlParser);

	public abstract String getDefaultPage();

	public abstract void setDefaultPage(String defaultPage);
}